package com.wjm.xml.Jsoup;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;

/**
 * Data:2022年08月02日
 * Author:wjm
 * Content: Jsoup解析器解析xml文档
 *
 *
 * 获取Document对象的方法：
 *         public static Document parse(File in, String charsetName)
 *                 解析xml或html文件，返回Document对象
 *
 *         public static Document parse(String str)
 *                 解析xml或html字符串，返回Document对象
 *
 *         public static Document parse(URL url, int timeoutMillis)
 *                 通过网络路径获取指定的html或xml的文档对象,第二个参数是设置超时时间  (可以用来做爬虫)
 *
 *
 *     以下是第1种方法的演示
 *
 */
public class JsoupDemo {
    public static void main(String[] args) throws IOException {
        //通过反射机制，读取xml文档的路径
        String path = JsoupDemo.class.getClassLoader().getResource("com/wjm/xml/Jsoup/emplist.xml").getPath();
        //获取document对象
        Document doc = Jsoup.parse(new File(path),"utf-8");
        //和上面效果一样
        //Document doc = Jsoup.parse(new File("./Java-API-Xml/src/com/wjm/xml/Jsoup/emplist.xml"),"utf-8");
        System.out.println(doc);
        System.out.println("-------------------------------");

        //解析xml文档，通过doc对象获取element对象 Elements可以认为是一个集合:ArrayList<Element>
        Elements names = doc.getElementsByTag("name");
        System.out.println(names.size());
        System.out.println("-----------------------------------");

        //获取第3个name的element对象
        Element element3 = names.get(2);
        System.out.println("获取的第3个name的具体对象是"+element3);

        //获取第3个name的element对象的数据
        String name3 = element3.text();
        System.out.println("第3个name的element对象的数据:"+name3);




    }
}
